package edu.osu.cse.c651.cryptochess;

import java.util.ArrayList;

/**
 * Defines the methods each piece should have.
 * 
 * @author Katherine Tornwall
 */
public interface Piece {
	/**
	 * Returns the resource ID for the image for this piece.
	 * 
	 * @return resource ID for drawable piece icon
	 */
	public int getImageResource();
	
	/**
	 * Returns the color of this piece.
	 * 
	 * @return this piece's color
	 */
	public Color getPlayerColor();
	
	/**
	 * Returns the list of moves this piece can make at this time.
	 * 
	 * @return list of moves
	 */
	public ArrayList<BoardSquare> getMoves();
	
	/**
	 * Returns the current location of this piece. Returns null if it
	 * has been captured.
	 * 
	 * @return current location
	 */
	public BoardSquare getLocation();
	
	/**
	 * Returns the name of the piece.
	 * 
	 * @return the name of the piece
	 */
	public PieceName getPieceName();
}
